package io.geekidea.boot.test.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.test.dto.CarPortDto;
import io.geekidea.boot.test.entity.CarPort;
import io.geekidea.boot.test.query.CarPortQuery;
import io.geekidea.boot.test.vo.CarPortVo;
import io.geekidea.boot.test.query.AppCarPortQuery;
import io.geekidea.boot.test.vo.AppCarPortVo;


/**
 * 车库 服务接口
 *
 * @author geekidea
 * @since 2025-03-25
 */
public interface CarPortService extends IService<CarPort> {

    /**
     * 添加车库
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addCarPort(CarPortDto dto);

    /**
     * 修改车库
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updateCarPort(CarPortDto dto);

    /**
     * 删除车库
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteCarPort(Long id);

    /**
     * 车库详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    CarPortVo getCarPortById(Long id);

    /**
     * 车库分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<CarPortVo> getCarPortPage(CarPortQuery query);

    /**
     * App车库详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppCarPortVo getAppCarPortById(Long id);

    /**
     * App车库分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppCarPortVo> getAppCarPortPage(AppCarPortQuery query);

}
